1. Field of the Invention
The present invention relates to recursive, or Infinite Impulse Response (IIR), digital filters. More specifically, the present invention relates to a technique to suppress limit-cycle oscillations in an IIR digital filter.
2. Background Art
As methods for fabricating integrated electronic circuits have developed into mature technologies, progress has been marked by continual efforts to expand the number of transistors that can be fabricated on a given area of substrate material. This interest in increasing electron device density has been driven by a desire to incorporate ever more sophisticated systems onto a single chip. Particularly attractive are systems that combine communications and computing functions.
However, wireless communications technologies (and much of the existing land line networks) convey data in an analog format, while high speed computing operations are more readily accomplished on data in a digital format. Therefore, systems that combine these functions depend upon the ability to convert data between analog and digital forms. Where analog and digital formats are both used on a single chip, the system is referred to as a “mixed signal” system.
An analog waveform is susceptible to interference from other analog waveforms, distortion by the system, and the introduction of noise into the waveform. These phenomena can cause the analog waveform to change in a manner that hampers the ability of the system to extract the signal from the waveform. To minimize alterations due to distortions and noise, an analog waveform typically is converted to a digital format shortly after the analog waveform is received by the system. Discrete values of the analog waveform are sampled at a standard frequency. A quantized value is assigned to represent each sampled value. A digital waveform is produced as quantized values are assigned to the discrete sampled values of the analog waveform. While the analog waveform comprises a value that changes continuously with time, the digital waveform comprises a stream of discrete quantized values.
Ideally, there is a direct relationship between the values of the analog and digital waveforms at corresponding points in time. In reality, the use of a limited number of quantized values (i.e., bits) for the digital waveform dictates that sampled values of the analog waveform often must be rounded to the nearest quantized value. The difference between the sampled value and the quantized value is referred to as “quantization error”, which is an unwanted byproduct of the quantization process.
Conversion of the analog waveform to a digital format also allows the system to reconstruct the signal to compensate for changes that occurred to the analog waveform before it was received. This function is known as “digital signal processing”. Digital signal processing typically involves operations that act to compare a current discrete value in the digital waveform with one or more other discrete values at previous points in the digital waveform, and to modify the current discrete value based on a result of the comparison(s). These operations are performed by “digital filters”.
Digital filters use statistical algorithms to modify current discrete values as a function of previous discrete values. Underlying digital signal processing is an assumption that, by replacing the original discrete values with the modified discrete values, the filtered digital waveform will more accurately represent the signal carried by the analog waveform before it was received by the system. Thus, a digital filter receives an original discrete value x[n] as an input, and produces a modified discrete value y[n] as an output.
Digital filters can be categorized according to a variety of characteristics. According to one taxonomy, when all the inputs to a digital filter are original discrete values, the digital filter is referred to as a “nonrecursive” digital filter. However, often the specific function of a nonrecursive digital filter can be performed with fewer inputs and operations by using previous filter outputs (i.e., modified discrete values) as inputs to the filter for the current operation. Such a digital filter is known as a “recursive” digital filter. For example, a nonrecursive digital filter with a function as shown in Eq. (1):y[n]=x[n]+½x[n−1]+¼x[n−2]+⅛x[n−3]+ . . . , for n=0, 1, 2,  Eq. (1)would require an infinite number of inputs and operations. In a recursive digital filter, the function of Eq. (1) can be recast as shown in Eq. (2):y[n]=½y[n−1]+x[n], for n=0, 1, 2,  Eq. (2)
Although nonrecursive digital filters can be less efficient than recursive digital filters, nonrecursive digital filters are unconditionally stable. When the signal in the digital waveform becomes a constant common value at the input of a nonrecursive digital filter (indicative that the digital waveform has suspended conveyance of data), its output will eventually dissipate to the common value and remain there. In contrast, when the signal in the digital waveform becomes a constant common value at the input of a recursive digital filter, its output can have continuous or occasional outputs with values different from the applied common value for an indefinite period of time. This condition is referred to as a “limit-cycle oscillation”.
Limit-cycle oscillations are caused by the compounding of quantization errors that occurs when previous digital filter outputs are used as inputs to the digital filter for the current operation. Because of the limited number of quantized values, in some instances the modified discrete values calculated by a digital filter must be rounded to the nearest quantized value. As was the case in converting the waveform from analog to digital format, the difference between the calculated modified discrete value and the rounded modified discrete value is also a quantization error. When previous filter outputs are used as inputs to the filter for the current operation, quantization errors can be compounded in a manner that can give rise to limit-cycle oscillations.
For example, if original discrete value x[n] is an impulse input as shown in Eq. (3):x[n]={15, 0, 0, 0, 0, 0, 0, . . . }, for n=0, 1, 2  Eq. (3)a nonrecursive digital filter with the function shown in Eq. (1) would produce modified discrete value output y[n] as shown in Eq. (4):y[n]={15, 8, 4, 2, 1, 0, 0, . . . }, for n=0, 1, 2  Eq. (4)
In contrast, a recursive digital filter with the function shown in Eq. (2) would produce modified discrete value output y[n] as shown in Eq. (5):y[n]={15, 8, 4, 2, 1, 1, 1, . . . }, for n=0, 1, 2  Eq. (5)
In Eq. 4, y[0] equals 15; y[1] equals 7.5, which is rounded to 8; y[2] equals 3.75, which is rounded to 4; y[3] equals 1.875, which is rounded to 2; y[4] equals 0.9375, which is rounded to 1; y[5] equals 0.46875, which is rounded to 0; y[6] equals 0.234375, which is rounded to 0; and subsequent modified discrete quantized values are also rounded to zero. Thus, in response to an impulse input, the nonrecursive digital filter has a nonzero output for a finite period of time and eventually the output dissipates to zero and remains there. For this reason, nonrecursive digital filters are also known as “Finite Impulse Response” (FIR) filters.
In contrast, in Eq. (5), y[0] equals 15; y[1] equals 7.5, which is rounded to 8; y[2] equals 4; y[3] equals 2; y[4] equals 1; y[5] equals 0.5, which is rounded to 1; y[6] equals 0.5, which is rounded to 1; and subsequent modified discrete quantized values are also rounded to one. Thus, in response to an impulse input, the recursive digital filter has a nonzero output for an infinite period of time. For this reason, recursive digital filters are also known as “Infinite Impulse Response” (IIR) filters.
This example demonstrates how quantization errors can be compounded by IIR filters in a manner that can give rise to limit-cycle oscillations. Where a digital filter has processed a more complex waveform and the signal in the digital waveform becomes a constant common value applied to the input of the digital filter, limit-cycle oscillations often appear as “random” outputs, with values different from the common value, that occur long after the signal in the digital waveform has become the constant common value. Limit-cycle oscillations are manifested as noise in the filtered digital waveform. Such noise hampers the ability of the system to extract the signal from the filtered digital waveform.
Limit-cycle oscillations have been analyzed in J. G. Proakis and D. G. Manolakis, Digital Signal Processing, Principles, Algorithms, and Applications, Prentice-Hall 1996, which is incorporated herein by reference. Proakis reports that, for first- and second-order IIR filters, limit-cycle oscillations are confined to the Least Significant Bit (LSB) in the digital signal. Simulations of higher order IIR filters also show that limit-cycle oscillations tend to remain within the LSB and rarely effect the Next Least Significant Bit.
One way to eliminate limit-cycle oscillations is to use a “mute output” system. The mute output system detects when the signal in the digital waveform becomes a constant common value applied to the input of the digital filter, and acts to cause the digital waveform to bypass the digital filter. When the mute output system detects that the signal in the digital waveform ceases to comprise the constant common value, the mute output system reapplies the digital waveform to the digital filter. Causing the digital waveform to bypass the digital filter precludes the compounding of quantization errors, and thus prevents limit-cycle oscillations. However, causing the digital waveform to bypass the digital filter also delays the time in which, after the digital waveform has been reapplied to the digital filter, the modified discrete values output from the digital filter again accurately represent the signal carried by the analog waveform before it was received by the system.
Another way to reduce limit-cycle oscillations is to increase the number of quantized values (i.e., bits) used for the digital waveform. Using more quantized values reduces the degree of rounding that must occur to sampled values of the analog waveform. This decreases the quantization errors associated with converting the analog waveform to a digital format, which in turn limits the magnitude of limit-cycle oscillations associated with compounding these quantization errors. However, increasing the number of bits in the digital waveform requires the use of memory registers designed to store the additional number of bits. Such registers would occupy greater areas of the substrate material and consume additional power. Furthermore, the use of additional bits may be incompatible with the format of subsequent processing operations.
Still another way to reduce limit-cycle oscillations is through the use of “lattice wave” digital filters. Lattice wave digital filters incorporate complex algorithms that act, among other purposes, to reduce limit-cycle oscillations. However, lattice wave filters are difficult to design and implement, and therefore can increase the cost and time needed to develop a system.
What is needed is a technique to suppress limit-cycle oscillations that can readily be used with all types of digital filters.